const path=require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } =require('clean-webpack-plugin');
module.exports={
    entry: './webpack/src/main.js',
    output: {
        //将所有的依赖模块输入到bundle.js
        filename: "bundle.js",
        //将输出文件放到dist文件夹下
        path: path.resolve(__dirname,'./dist')
    },
    module: {
        rules: [
            {
                //用正则表达式去匹配要用该Loader转换的css文件
                test: /\.css$/,
                use:['style-loader','css-loader'],
            },{
                test: /\.(scss|sass)$/,   // 正则匹配以.scss和.sass结尾的文件
                use: ['style-loader', 'css-loader', 'sass-loader']  // 需要用的loader，一定是这个顺序，因为调用loader是从右往左编译的
            },test: /\.js$/,
                use: {
                loader: 'babel-loader',
            },exclude: /node_modules/   // 排除匹配node_modules模块
        ]
    },
    devServer: {
        port:'8088',//端口号
        inline:true,//文件修改后实时刷新
        historyApiFallback: true,//不跳转
    },
    plugins: [
        new webpack.BannerPlugin('版权所有'),
        new HtmlWebpackPlugin({
            template:path.join(__dirname,"/src/index.template.html")// new一个这个插件的实例，并传入相关的参数
        }),
        new CleanWebpackPlugin({
            root:path.resolve(__dirname,'..'),
            dry: false ,// 启用删除文件
            verbose:true,//打印日志
            cleanOnceBeforeBuildPatterns:["*/sprite.*.*"]//要删除的文件以及跳过的文件，！为跳过
        }),
        new webpack.HotModuleReplacementPlugin(),
    ],
}